#ifndef __HEADER_H__
#define __HEADER_H__

#define THREADNUM 3
enum
{
    FREE,
    BUSY
};
// 服务端拆分数据载体的结构体【命令行、用户名、虚拟路径、额外信息】
// 改结构体用于传递给每一个函数
typedef struct
{
    char command[50];
    char username[50];
    char virtual_path[255]; // 客户端的虚拟路径
    char additional[255];
    char serverPath[50]; // 外加的，不属于数据载体的内容
    int socketFd; // 与客户端通信的Socket
} splictDataCarrier_st;

// 队列的节点
typedef struct qNode
{
    // 增加用户信息：用户名、当前路径

    char username[20];
    char curPath[50]; // 当前路径
    char serverPath[20]; // 服务端的工作路径
    int fd; // 与客户端通信的socket
    int aliveStatus; // 1表示存活，0表示不存活
    struct qNode* next;
}qNode_st;

// 维护队列数量的结构体
typedef struct
{
    struct qNode* head; 
    struct qNode* tail;
    int size; // 
}queue_st;

#endif